#include <stdio.h>
#include <alloc.h>
typedef struct node
{   int data;
    struct node *link;
}JD;

JD *dlbcz(JD *h,int x)
{	JD *p;
	p=h;
	while(p!=NULL && p->data!=x)
		p=p->link;
	return (p);
}

void dlbcr(JD *p,int x)
{	JD *s;
	s=(JD*)malloc(sizeof(JD));
	s->data=x;
	s->link=p->link;
	p->link=s;
}

void dlbsc(JD *p)
{	JD *q;
	if(p->link!=NULL)
	{q=p->link;
	 p->link=q->link;
	 free(q);
	}
}
JD* dlbjl(int a[],int n)
{
	JD *s,*h;
	int i;
	h=(JD*)malloc(sizeof(JD));
	h->data=0;
	h->link=NULL;
	for(i=n;i>0;i--)
	{s=(JD*)malloc(sizeof(JD));
	 s->data=a[i-1];
	 s->link=h->link;
	 h->link=s;
	}
	return (h);
}
void dlbxs(JD *h)
{   JD *p;
    p=h->link;
    while(p!=NULL)
    {  printf("%d,",p->data);
       p=p->link;
    }
    printf("\n");
}
void main()
{  int a[]={3,2,1,4,5};
   JD *head,*p;
   head=dlbjl(a,5);
   dlbxs(head);
   p=dlbcz(head,4);
   printf("%d\n",p->data);
   p=head->link->link;
   dlbcr(p,9);
   dlbxs(head);
   p=head->link->link->link;
   dlbsc(p);
   dlbxs(head);
}